/**
 * @Description: 用户数据模块
 * @Author: 云
 * @Date: 2023-12-07 15:28:12
 * @LastEditor: 云
 * @LastEditTime: 2023-12-28 14:48:54
 */
import userManage from '@/common/manager/user-manager.js'

export default {
	state: {
		userDateInfo: {}, // 保存用户信息
		userInfo: {}, // 用户信息
		copyUserInfo: {}, // 备份用户信息
		volunteerInfo: [], // 志愿表数据
		schoolDialogData: {}, // 选校弹窗数据
		isOneSelectSubject: false // 是否第一次进入智能选科
	},
	getters: {

	},
	mutations: {
		/**
		 * @description: 设置志愿表数据
		 */
		SET_VOLUNTEER_INFO(state, data) {
			state.volunteerInfo = data
		},
		/**
		 * @description: 设置选校弹窗数据
		 */
		SET_SCHOOL_DIALOG_DATA(state, data) {
			state.schoolDialogData = data
		},
		/**
		 * @description: 设置用户信息
		 */
		SET_USER_INFO(state, data) {
			state.userInfo = data
		},
		/**
		 * @description: 设置备份用户信息
		 */
		SET_COPY_USER_INFO(state, data) {
			state.copyUserInfo = data
		},
		/**
		 * @description: 设置第一次选科状态
		 */
		SET_IS_ONE_SELECT_SUBJECT(state, data) {
			state.isOneSelectSubject = data
		},
		/**
		 * @description: 清除所有用户数据
		 * @param {*} state
		 * @return
		 */
		SET_REMOVE_USERINFO(state) {
			state.userInfo = {} // 用户信息
			state.copyUserInfo = {} // 备份用户信息
			state.volunteerInfo = [] // 志愿表数据
			state.schoolDialogData = {} // 选校弹窗数据
			state.isOneSelectSubject = false // 是否第一次进入智能选科
		},
		/**
		 * @description: 保存用户信息
		 * @param {*} state
		 * @return
		 */
		SET_USER_DATE(state, data) {
			state.userDateInfo = data
		}
	},
	actions: {
		/**
		 * @description: 存入志愿表数据
		 * @param {*} state
		 * @return
		 */
		asyncSetVolunteerInfo({
			commit
		}, data) {
			commit('SET_VOLUNTEER_INFO', data)
			userManage.setVolunteerInfo(data)
		},
		asyncSetSchoolDialogData({
			commit
		}, data) {
			commit('SET_SCHOOL_DIALOG_DATA', data)
		},
		asyncSetUserInfo({
			commit
		}, data) {
			commit('SET_USER_INFO', data)
		},
		/**
		 * @description: 设置备份用户信息
		 * @param {Object} commit 
		 * @param {Object} data
		 * @return
		 */
		asyncSetCopyUserInfo({
			commit
		}, data) {
			commit('SET_COPY_USER_INFO', data)
		},
		asyncSetIsOneSubject({
			commit
		}, data) {
			commit('SET_IS_ONE_SELECT_SUBJECT', data)
		},
		asyncUserInfoDate({
			commit
		}, data) {
			commit('SET_USER_DATE', data)
		}
	}
}